#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

/*
//取巧法：利用输入空格分割字符串   
int main()
{
    string str;
    string res = "";
    while(cin >> str){
        res = (' '+str) + res;
    }
    res.erase(res.begin());
    cout << res << endl;
    return 0;
}
*/

// 快慢指针去除多余空格
void removeExtraSpaces(string& s){
    int slow = 0;
    for(int fast = 0; fast < s.size(); ++fast){
        if(s[fast] != ' '){
            if(0 != slow) s[slow++] = ' ';
            while(fast < s.size() && s[fast] != ' '){
                 s[slow++] = s[fast++];
             }
        }
    }
    s.resize(slow);  // 去除尾部空格
}

// 反转部分字符串
void reverseWord(string& s, int left, int right){
    for(int i = left, j = right; i < j; ++i, -- j)
        swap(s[i], s[j]);
}

int main()
{
    string str;
    getline(cin, str);
    removeExtraSpaces(str);
    reverseWord(str, 0, str.size()-1);
    
    int start = 0;
    for(int i = 0; i <= str.size(); ++i){
        if(str[i] == ' ' || str.size() == i){
            reverseWord(str, start, i-1);
            start = i + 1;
        }
    }
    cout << str << endl;
    return 0;
}
